perm filename AID.VLI[VLI,LSP] blob
sn#381925 filedate 1978-09-08 generic text, type C, neo UTF8
COMMENT ā VALID 00002 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 COUNT UNCOUNT PACKFILE SIZE SIZEFILE
C00005 ENDMK
Cā;
; COUNT UNCOUNT PACKFILE SIZE SIZEFILE ;
(STATUS 2 1 2)
(DF COUNT (L ;; X)
(MAPC L '(LAMBDA (L)
(COND ((SETQ X (OR (GET L EXPR) (GET L FEXPR)))
(ATTACH (LIST 'PUT (LIST QUOTE L)
(CONS 'ADD1 (CONS (LIST 'GET (LIST QUOTE L)
''COUNT))) ''COUNT) (CDDR X))
(PUT L 0 'COUNT)))))) )))
(DE UNCOUNT ()
(MAPC (NTH 6 (OBLIST)) '(LAMBDA (L ;; N)
(COND ((SETQ N (GET L 'COUNT))
(PRINT L ': N)
(REMPROP L 'COUNT)
(SMASH (CDDR (OR (GET L EXPR) (GET L FEXPR))) ))) ))) )))
(DE PACKFILE (FO . FI)
; TASSE TOUS LES FICHIERS FI1 ... FIN DANS FO ;
(DE EOF (F)
(IF (SETQ F (NEXTL FI))
(INPUT F)
(STATUS 0 (POP))
(INPUT) (OUTPUT)
(REMPROP 'EOF EXPR)
(RESET) ))
(PUSH (STATUS 0))
(STATUS 2 20)
(OUTPUT FO)
(EOF)
(WHILE T (PRINT (READ)))) )))
(DE SIZE (L)
; CALCUL LE NB DE DOUBLETS DE LA S-EXPR L ;
(IF (ATOM L) 1
(APPLY 'PLUS (CONS 1 (MAPCAR L 'SIZE))))) )))
(DE SIZEFILE (FI ;; N)
; CALCUL LE NB DE DOUBLETS DU FICHIER FI ;
(SETQ N 0)
(DE EOF ()
(PRINT '= N)
(INPUT)
(REMPROP 'EOF EXPR)
(RESET))
(PRINT 'SIZE FI ':)
(INPUT FI)
(WHILE T (SETQ N (PLUS N (SIZE (READ)))))) )))
(STATUS 1 0 1 2)